<?php

/*!
 * \author Antonin Barthélémy, Brice VICO
 * \file Etudiant.php
 * \namespace Site\UtilisateurBundle\Entity
 * \class Etudiant
 *
 * \brief Cette classe est une entité de notre site web représentant un étudiant avec un numéro étudiant, une affectation à un projet, une ue, une note et une photo.
 * \brief Chaque Utilisateur ayant un type = e possède une entité Etudiant.
 */


namespace Site\UtilisateurBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Etudiant
 *
 * @ORM\Table()
 * @ORM\Entity
 */
class Etudiant
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="Site\ProjetBundle\Entity\Projet",inversedBy="etudiants", cascade={"persist"})
     * @ORM\JoinColumn(nullable=true)
     */
    private $projet;

    /**
     * @ORM\ManyToOne(targetEntity="Site\GeneralBundle\Entity\Ue",inversedBy="etudiants")
     * @ORM\JoinColumn(nullable=false)
     */
    private $ue;

    /**
     * @var string
     *
     * @ORM\Column(name="numEtud", type="string", length=255, unique=true)
     */
    private $numEtud;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="dateModifAffect", type="datetime", nullable=true)
     */
    private $dateModifAffect;

    /**
     * @var string
     *
     * @ORM\Column(name="note", type="string", length=255, nullable=true)
     */
    private $note;

    /**
     * @ORM\Column(name="photo", type="string", length=512, nullable=true)
     *
     * @Assert\Image()
     */
    private $photo;


    /**
     * Get id
     *
     * @return string
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set numEtud
     *
     * @param string $numEtud
     * @return Etudiant
     */
    public function setNumEtud($numEtud)
    {
        $this->numEtud = $numEtud;

        return $this;
    }

    /**
     * Get numEtud
     *
     * @return string
     */
    public function getNumEtud()
    {
        return $this->numEtud;
    }

    /**
     * Set dateModifAffect
     *
     * @param \DateTime $dateModifAffect
     * @return Etudiant
     */
    public function setDateModifAffect($dateModifAffect)
    {
        $this->dateModifAffect = $dateModifAffect;

        return $this;
    }

    /**
     * Get dateModifAffect
     *
     * @return \DateTime
     */
    public function getDateModifAffect()
    {
        return $this->dateModifAffect;
    }

    /**
     * Set note
     *
     * @param string $note
     * @return Etudiant
     */
    public function setNote($note)
    {
        $this->note = $note;

        return $this;
    }

    /**
     * Get note
     *
     * @return string
     */
    public function getNote()
    {
        return $this->note;
    }

    /**
     * Set ue
     *
     * @param string $ue
     * @return Etudiant
     */
    public function setUe($ue)
    {
        $this->ue = $ue;

        return $this;
    }

    /**
     * Get ue
     *
     * @return string
     */
    public function getUe()
    {
        return $this->ue;
    }

    public function getPhoto()
    {
        return $this->photo;
    }

    public function setPhoto($photo)
    {
        $this->photo = $photo;
    }


    public function getProjet()
    {
        return $this->projet;
    }

    public function setProjet($projet)
    {
        $this->projet = $projet;
    }
}
